<!DOCTYPE html>
<html lang="en">

    <head><title>护网学习笔记 &ndash; UxiaoTag的博客</title>
<meta name="description" content="一个蒟蒻无比的萌新.">

<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8"/>



<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/css/all.min.css" integrity="sha512-1sCRPdkRXhBV2PBLUdRb4tMg1w2YPf37qatUFeS7zlBy7jJI8Lf4VHwWfZZfpXtYSLy85pkm9GaYVYMfw5BC1A==" crossorigin="anonymous" />


<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/academicons/1.9.1/css/academicons.min.css" integrity="sha512-b1ASx0WHgVFL5ZQhTgiPWX+68KjS38Jk87jg7pe+qC7q9YkEtFq0z7xCglv7qGIs/68d3mAp+StfC8WKC5SSAg==" crossorigin="anonymous" />


<link rel="stylesheet" href="https://juruoxiao.gitee.io/linux_work/css/palettes/base16-dark.css">
<link rel="stylesheet" href="https://juruoxiao.gitee.io/linux_work/css/risotto.css">
<link rel="stylesheet" href="https://juruoxiao.gitee.io/linux_work/css/custom.css">
</head>

    <body>
        <div class="page">

            <header class="page__header"><h1 class="page__logo"><a href="https://juruoxiao.gitee.io/linux_work" class="page__logo-inner">UxiaoTag的博客</a></h1>
<nav class="page__nav main-nav">
    <ul>
    
    
    <li class="main-nav__item"><a class="nav-main-item" href="https://juruoxiao.gitee.io/linux_work/about/" title="">About</a></li>
    
    <li class="main-nav__item"><a class="nav-main-item active" href="https://juruoxiao.gitee.io/linux_work/post/" title="Posts">Posts</a></li>
    
    </ul>
</nav>

</header>

            <section class="page__body">
    <header class="content__header">
        <h1>护网学习笔记</h1>
    </header>
    <div class="content__body">
        <p>护网学习前四天的内容，确实比较多，分批写好了</p>
<h1 id="day01">day01：</h1>
<p>复习数据包，https交互过程等基本概念，安装identwaf（防火墙检测）和VulHub（漏洞平台）和nmap(扫描工具)，复现mysql CVE-2012-2122
当连接MariaDB/MySQL时，输入的密码会与期望的正确密码比较，由于不正确的处理，会导致即便是memcmp()返回一个非零值，也会使MySQL认为两个密码是相同的。也就是说只要知道用户名，不断尝试就能够直接登入SQL数据库。</p>
<p>原理：详细说是因为编译器的优化，memcmp()的hash比较会导致hash出来的值可能会超过了 -128 到 127(有符号整数)范围，最终导致比较哈希密码的代码有时返回 true，可以通过这个来用错误的密码，够多就可以撞出hash返回对上的情况。（由于每次进行此比较时身份验证协议都会生成不同的哈希值，因此接受任何密码进行身份验证的几率为 1/256。）
可以通过telnet &lt;remote_host&gt; 3306或者nc来测版本</p>
<h1 id="day02">day02：</h1>
<p>复习sql注入，装+写了sql-labs前四题，通过‘，“),&rsquo;)绕过字符串然后执行恶意sql,主要通过and 1=2 union注入。通过information_schema来找数据库，表，列名分析。
解决也很简单，预编译就可以放置恶意注入sql执行。
还写了sql-labs less-5，5看过源码就能发现，正常不输出内容，错误输出报错信息，所以利用sql报错注入就能解决，6和5一致，少了&rsquo;。</p>
<h1 id="day03">day03:</h1>
<p>学回webshell,一个方法，通过into outfile来植入后门，需要检查secure_file_priv%变量，sql用户拥有较高权限(可以执行loadfile)，知道网址的系统路径，且（重点）拥有写入权限，不然不让你touch。</p>
<p>show global variables like &lsquo;secure_file_priv%&lsquo;的value为空则任意路径都行，（NULL都不行，如果里面有值，那就是值得路径）至于怎么执行，看具体场景，我这里是通过union等价上一个select，然后select @@global.secure_file_priv变量来写的。执行select shell into outfile filepath写的。</p>
<p>还有一个方法是通过genaral_log，开启之后会记录查询后的语句。设定输出为php或者想办法让其作为php代码执行就行。不过因为日志的特性，你的php代码百分之90会报错，因为和日志的其他东西混在一起，这个代码能正常执行时看日志格式会不会冲突的，所以当作一个特性记一下。</p>
<p>学了一下hashcat，通过select指令查到相关的user,password,然后丢去hashcat跑（这里更推荐去CMD5跑，自己跑要提供密码本，比较麻烦）。</p>
<p>以上内容皆需要一个致命条件，该网址访问mysql的账户，需要高权限，且mysql用户本身对system也要有访问权限。(linux一点事没有，windows问题比较大)</p>
<p>顺带一提，如果没有写权限，你也可以通过select loadfile()去读文件。比如/etc/passwd。</p>
<h1 id="day04">day04:</h1>
<p>今天就不先弄什么fileupdate之类注入了，先学一下OWASPtop10。
感觉这个会经常回来看（写好看一点）。</p>
<p>开放式Web应用程序安全项目（OWASP）是一个在线社区，在Web应用安全领域提供免费的文章，方法，文档，工具和技术。OWASP里面不仅仅有评级，有很多测试开发指南，软件成熟度标准，集成渗透测试工具。有空多看看<a href="https://zh.wikipedia.org/zh-cn/OWASPwiki">OWASPwiki</a></p>
<p>OWASPTop10那就是这个开放web安全社区评级的10大漏洞了，21年评了一次，17年评了一次。03年开始评级。</p>
<p><img src="https://owasp.org/Top10/zh_CN/assets/image1.png" alt="OWASPTop10"></p>
<p>2021年相较于2017年有所变化，2021年的<a href="https://owasp.org/Top10/zh_CN/">top10</a>,这次测试标准用的不是事故次数二十事故率（详细原因网址有）,不过网址好像多以统计数据标准相关内容，具体的解决措施还是要自己找资料。</p>
<h3 id="提示">提示</h3>
<p>CWE是一种用于标识软件和硬件中常见弱点的分类系统。旨在提供一个共同的语言和标准化的方式来描述、记录和分享软件和硬件中的安全漏洞。</p>
<br>
<h2 id="a012021-权限控制失效httpsowasporgtop10zh_cna01_2021-broken_access_control"><a href="https://owasp.org/Top10/zh_CN/A01_2021-Broken_Access_Control/">A01:2021-权限控制失效</a>。</h2>
<h3 id="a012021-权限控制失效从第五名移上來-94-被测试的应用程式都有验证到某种类别权限控制失效的问题在权限控制失效这个类别中被对应到的-34-个-cwes-在验测资料中出现的次数都高于其他的弱点类别">A01:2021-权限控制失效。从第五名移上來; 94% 被测试的应用程式都有验证到某种类别权限控制失效的问题。在权限控制失效这个类别中被对应到的 34 个 CWEs 在验测资料中出现的次数都高于其他的弱点类别。</h3>
<h4 id="存取控制強化政策使用户不能采取在预期权限之外的行动控制失效通常会导致未经授权的资讯泄漏修改或损坏所有资料或执行超出用户权限的业务功能常见的存取控制弱点包括">存取控制強化政策，使用户不能采取在预期权限之外的行动。控制失效通常会导致未经授权的资讯泄漏、修改或损坏所有资料，或执行超出用户权限的业务功能。常见的存取控制弱点包括：</h4>
<ul>
<li>通过修改 URL、內部应用程式状态或 HTML 页面，或仅使用自定义 API 攻击工具來绕过存取控制检查。</li>
<li>容许主键被更改为其他用户的记录，允许查看或编辑其他人的账户。</li>
<li>特权提升。未登入即成为用户，或以用户身份登入即成为管理员。</li>
<li>元数据操作，例如重放或篡改 JSON 网站令牌(JWT)之存取控制令牌，或被操纵以提升特权或滥用 JWT 失效的 cookie 或隐藏域内容。</li>
<li>CORS 错误配置允许未经授权的 API 存取。</li>
<li>以未经身份验证的用户身份強制浏览已验证的页面或以标准用户身份存取特权页面。存取缺少存取控制的 API 以进行 POST、PUT 和 DELETE 操作。</li>
</ul>
<br>
<h4 id="预防主要依靠存取控制仅在受信任的服务器端代码或无服务器的-api-有效攻击者无法修改这里的存取控制检查或元数据">预防主要依靠：存取控制仅在受信任的服务器端代码或无服务器的 API 有效，攻击者无法修改这里的存取控制检查或元数据:</h4>
<p>除公开的资源外，默认为拒绝存取。</p>
<ul>
<li>一次性地建置存取控制机制，之后在整个应用程式中重复使用它们，包括最大限度地減少使用 CORS。</li>
<li>模型的存取控制措施应该強化记录所有权，而不是让用户可以创建、读取、更新或刪除任何记录。</li>
<li>独特的应用程式业务限制要求应由领域模型予以強化。</li>
<li>停用 Web 服务器目录列表，并确保档案元数据（例如，.git)和备份档案不在 web 根目录中。</li>
<li>记录存取控制失效，并在适当的时间警示管理员（例如，重覆性失效）。</li>
<li>对 API 和控制器存取进行流量限制，以最小化自动攻击工具所帶來的损害。</li>
<li>JWT 令牌于登出后，在服务器端应使其失效。</li>
</ul>
<br>
<h2 id="a022021-加密失败httpsowasporgtop10zh_cna02_2021-cryptographic_failures"><a href="https://owasp.org/Top10/zh_CN/A02_2021-Cryptographic_Failures/">A02:2021-加密失败</a></h2>
<h3 id="a022021-加密失败已经从原来的第三名上升到第二名之前它所代表的是a32017-敏感数据暴露这个类别更像是一个广泛的症状而不是根本原因而现在重新命名为a022021-加密失败重点关注与加密相关的失败其实这个问题在之前也隐含地存在这个类别通常会导致敏感数据暴露或系统被攻击控制">A02:2021-加密失败已经从原来的第三名上升到第二名，之前它所代表的是A3:2017-敏感数据暴露，这个类别更像是一个广泛的症状，而不是根本原因。而现在重新命名为A02:2021-加密失败，重点关注与加密相关的失败，其实这个问题在之前也隐含地存在。这个类别通常会导致敏感数据暴露或系统被攻击控制。</h3>
<p>(中文的原文不明所以，我把gpt翻译的版本发出来了，大概意思是17年的web安全top10的命名不严谨)</p>
<h4 id="主要弱点请考量自身软件">主要弱点请考量自身软件：</h4>
<ul>
<li>是否以明文形式传输任何数据? 像是 HTTP, SMTP, FTP 等等协定，使用于对外网际网络的流量是危险的。必须验证所有的內部流量，如在负载平衡器、网站服务器、或后端系统之间 。</li>
<li>是否有任何老旧或脆弱的加密演算法被预设使用或存在于较旧的程式码?</li>
<li>是否正在使用默认的加密密钥、是否生成了弱加密密钥并重复使用，是否有适当的密钥管理或轮换?加密密钥是否被写入源代码中？</li>
<li>是否未强制执行加密? 举例: HTTP headers(浏览器)是否有遗失安全相关的指令或头信息?</li>
<li>收到的服务器证书和信任链是否正确验证？</li>
</ul>
<h4 id="预防">预防：</h4>
<ul>
<li>对应用程式处理、存储、传输的资料进行分类，根据隐私法、法令法规、或商业需求辨认哪些为敏感性资料。</li>
<li>依照分类执行对应的控制措施。</li>
<li>非必要不储存敏感性资料，尽快舍弃或使用符合 PCIDSS 的资料记号化(tokenization)甚至截断(truncation)。 沒有被保存的数据是不会被窃取的。</li>
<li>确保将所有靜态的敏感性资料加密。</li>
<li>确认使用最新版且标准的強演算法、协定及密钥; 使用适当的密钥管理。</li>
<li>使用安全的协定加密传输中的资料，像是有完全前向保密(PFS)、服务器加密优先顺序(cipher prioritization by the server)及安全參数的 TLS。 使用如 HTTP 強制安全传输技术(HSTS)的指令強化加密。</li>
<li>针对包含敏感资料的回应停用缓存。</li>
<li>使用具有散列/延迟因素(work factor/delay factor)，如 Argon2, scrypt, bcrypt 或 PBKDF2 的強自适应性加盐散列函数來储存密码。</li>
<li>独立验证设定的有效性。</li>
</ul>
<br>
<h2 id="a032021-注入式攻击httpsowasporgtop10zh_cna03_2021-injection"><a href="https://owasp.org/Top10/zh_CN/A03_2021-Injection/">A03:2021-注入式攻击</a></h2>
<h3 id="a032021-注入式攻击-下滑到第三名94-被测试的应用程式都有验测到某种类別注入式攻击的问题在注入式攻击这个类別中被对应到的-33-个-cwes-在验测资料中出现的次数为弱点问题的第二高跨站脚本攻击现在在新版本属于这个类別">A03:2021-注入式攻击 下滑到第三名。94% 被测试的应用程式都有验测到某种类別注入式攻击的问题。在注入式攻击这个类別中被对应到的 33 个 CWEs 在验测资料中出现的次数为弱点问题的第二高。跨站脚本攻击现在在新版本属于这个类別。</h3>
<p>(老生常谈了，17年的top1，94% 被测试的应用程式都有验测到某种类別注入式攻击的问题，被对应到的 33 个 CWEs 在验测资料中出现的次数。仅此仅次于权限控制失效)</p>
<h3 id="一些常见的注入式攻击是-sqlnosqlos-指令物件关系对映-ormldap-以及表达式语言-el-或对象导航图语言-ognl-注入这个概念在所有的直译器都是相同的假若应用程式存在注入式攻击的弱点源码检测是最好的方式强烈建议对所有输入的参数标头urlcookiesjsonsoap-以及-xml-的资料进行自动化测试组织可以将静态源码测试-sast-以及动态应用程式检测-dast-工具包含到持续整合与持续部署-cicd管道中以达成在上线部署前能识别注入攻击的缺陷">一些常见的注入式攻击是 SQL、NoSQL、OS 指令、物件关系对映 (ORM)、LDAP 以及表达式语言 (EL) 或对象导航图语言 (OGNL) 注入。这个概念在所有的直译器都是相同的。假若应用程式存在注入式攻击的弱点，源码检测是最好的方式。强烈建议对所有输入的参数、标头、URL、cookies、JSON、SOAP 以及 XML 的资料进行自动化测试。组织可以将静态源码测试 (SAST) 以及动态应用程式检测 (DAST) 工具，包含到持续整合与持续部署 (CI/CD)管道中，以达成在上线部署前能识别注入攻击的缺陷。</h3>
<h3 id="预防-1">预防：</h3>
<ul>
<li>需要将命令与查询资料分开，以防止注入式攻击。</li>
<li>首要的选项是使用安全的应用程式界面 (API)，完全避免使用直译器，以提供参数化的界面或整合到物件关系对映 (ORMs) 工具中。</li>
<li>注意：即使已经参数化了，在储存的程序中仍然可以引入 SQL 注入攻击，如果透过 PL/SQL 或 T-SQL 连接查询与资料，并使用 EXECUTE IMMEDIATE 或 exec() 执行恶意资料。</li>
<li>使用正面或白名单在服务器端验证输入的资料。这并不是一个完整的防御机制，因许多应用程序需要使用特殊的字符，例如：应用程式的文本区域或应用程式界面 (API)应用于行动装置上的应用程式。</li>
<li>对于任何剩余的动态查询，在转译中使用特殊符号进行查询将对查询语法带来不同的涵义。</li>
<li>注意：在 SQL 结构中，例如：资料表名称、栏位名称是无法被转译的，因此使用者提供资料结构的名称是危险的，这是一个在编写软体时常见的问题。</li>
<li>在查询中使用 LIMIT 以及其它的 SQL 控制器，可以防止当遭受 SQL 注入式攻击时被大量泄露纪录。</li>
</ul>
<br>
<h2 id="a042021-不安全设计httpsowasporgtop10zh_cna04_2021-insecure_design"><a href="https://owasp.org/Top10/zh_CN/A04_2021-Insecure_Design/">A04:2021-不安全设计</a></h2>
<h3 id="a042021-不安全设计是一个新的分类重点关注与设计缺陷相关的风险如果我们真正想要作为一个行业向左移动我们需要更多的威胁建模安全设计模式和原则以及参考架构不安全的设计无法通过完美的实现来修复因为根据定义所需的安全控制从未被创建出来以防御特定的攻击在这里move-left指的是将安全性考虑融入软件开发过程的早期阶段即在代码编写之前通过威胁建模安全设计模式和原则以及参考架构等方式来识别和解决安全问题传统上安全问题往往被视为软件开发的后期任务而在move-left的方法中安全性被视为整个软件开发生命周期的一部分以确保开发出更加安全可靠的软件">A04:2021-不安全设计是一个新的分类，重点关注与设计缺陷相关的风险。如果我们真正想要作为一个行业“向左移动”，我们需要更多的威胁建模、安全设计模式和原则以及参考架构。不安全的设计无法通过完美的实现来修复，因为根据定义，所需的安全控制从未被创建出来以防御特定的攻击。在这里，“move left”指的是将安全性考虑融入软件开发过程的早期阶段，即在代码编写之前，通过威胁建模、安全设计模式和原则以及参考架构等方式来识别和解决安全问题。传统上，安全问题往往被视为软件开发的后期任务，而在“move left”的方法中，安全性被视为整个软件开发生命周期的一部分，以确保开发出更加安全可靠的软件。</h3>
<h4 id="不安全设计是一个广泛的类别呈现许多不同的弱点代表为缺乏或无效的控制设计缺乏不安全设计是指没有控制措施举例来说想像一段程式码应该加密敏感资料但是没有对应的实作方法无效的不安全设计是可以实现威胁的地方但不足的领域商业逻辑验证会阻止该动作以下个例子说想像领域逻辑是用来处理基于收入等级的疫情减税但是并未确认所有的输入都是有正确的签名因此提供超过原本可以获得而且更显著的减税利益">不安全设计是一个广泛的类别呈现许多不同的弱点，代表为&quot;缺乏或无效的控制设计&quot;。缺乏不安全设计是指没有控制措施。举例来说，想像一段程式码应该加密敏感资料但是没有对应的实作方法。无效的不安全设计是可以实现威胁的地方，但不足的领域（商业）逻辑验证会阻止该动作。以下个例子说，想像领域逻辑是用来处理基于收入等级的疫情减税但是并未确认所有的输入都是有正确的签名，因此提供超过原本可以获得而且更显著的减税利益。</h4>
<h4 id="如何预防">如何预防：</h4>
<ul>
<li>建立与使用安全开发生命周期并且协同应用程式安全的专业人士来评估与设计安全与隐私相关的控制措施。</li>
<li>建立与使用安全设计模式的函式库或是已完成可使用的元件。</li>
<li>使用威胁建模在关键的认证、存取控制、商业逻辑与关键缺陷上。</li>
<li>撰写单元测试与整合测试来验证所有的关键流程对威胁建模都有抵抗。</li>
</ul>
<br>
<h2 id="a052021-安全设定缺陷httpsowasporgtop10zh_cna05_2021-security_misconfiguration"><a href="https://owasp.org/Top10/zh_CN/A05_2021-Security_Misconfiguration/">A05:2021-安全设定缺陷</a></h2>
<h3 id="a052021-安全设定缺陷从上一版本的第六名移动上來90-被测试的应用程式都有验测到某种类別的安全设定缺陷在更多的软件往更高度和有弹性的设定移动我们并不意外这个类別的问题往上移动在前版本中的-xml-外部实体注入攻击-xml-external-entities现在属于这个类別">A05:2021-安全设定缺陷从上一版本的第六名移动上來。90% 被测试的应用程式都有验测到某种类別的安全设定缺陷。在更多的软件往更高度和有弹性的设定移动，我们并不意外这个类別的问题往上移动。在前版本中的 XML 外部实体注入攻击 （XML External Entities）现在属于这个类別。</h3>
<p>(21年将17年top4的xee注入也放入了安全配置缺陷)</p>
<h4 id="弱点描述">弱点描述：</h4>
<ul>
<li>在程式各堆叠层面，缺少适切的安全强化，或是于云端服务上有着不当的权限设定。</li>
<li>不必要的功能启用或是安装 (例如，不必要的端口，服务，页面，帐号，或是特权)。
预设帐号与密码还可使用，并且未更改。</li>
<li>因错误处理而暴露出的堆叠追踪，或是向使用者，暴露出过多的错误警告资讯</li>
<li>因为系统升级，导致最新的安全功能被关闭，或是造成不安全的设定</li>
<li>在布署程式的伺服器，程式框架(例如 Struts, Spring, ASP net，各种函示库，资料库等。并未设定该有的安全参数。</li>
<li>服务器并未传送安全的 header 或是指令，或未被设定安全参数。</li>
<li>软件已经过时已淘汰，或者带有脆弱性 (请参照 A06:2021-易受攻击和已淘汰的组件 )</li>
</ul>
<h4 id="预防-2">预防:</h4>
<ul>
<li>一个可重复的安全强化流程，必需可达到快速且简单的布署，而且能在分隔且封锁的环境下执行。开发，品质管理，以及实际营运的环境，都须有一致相同的设定，并且使用不同的认证资讯。这种步骤需要尽可能的自动化，降低需要建立安全环境时，所需要的投入。</li>
<li>一个最精简的平台，上面不会搭配任何不需要的功能，套件，档案，以及范本。移除或不安装任何，不须使用的功能或框架。</li>
<li>在变更管理下，需有特定的任务，依据安全告知，相关更新，来执行安全审视及更动(可参照 A06:2021-易受攻击和已淘汰的组件)。审视云端储存的权限(例如 S3 bucket 的权限)</li>
<li>一个可分割的程式架构，对于各元件，用户，可透过分离，容器化，云端安全群组设定(ACLs)，来达到分割的效果。提供有效且安全的分离。</li>
<li>寄送安全指令给用户端，例如 安全标头。</li>
<li>一个自动化的流程，可以确认环境中各类的安全设定。</li>
</ul>
<br>
<h2 id="a062021-危险或过旧的组件httpsowasporgtop10zh_cna06_2021-vulnerable_and_outdated_components"><a href="https://owasp.org/Top10/zh_CN/A06_2021-Vulnerable_and_Outdated_Components/">A06:2021-危险或过旧的组件</a></h2>
<h3 id="2021版a06原本称为使用已知漏洞的组件在top-10社区调查中排名第2也通过数据分析进入了top-10该类别从2017年的第9位上升是我们难以测试和评估风险的已知问题这是唯一一个没有任何公共漏洞和曝光cves映射到包含cwes的类别因此默认的攻击和影响权重为50已计入其得分中">2021版A06原本称为“使用已知漏洞的组件”，在Top 10社区调查中排名第2，也通过数据分析进入了Top 10。该类别从2017年的第9位上升，是我们难以测试和评估风险的已知问题。这是唯一一个没有任何公共漏洞和曝光（CVEs）映射到包含CWEs的类别，因此默认的攻击和影响权重为5.0，已计入其得分中。</h3>
<h4 id="这个就真不那么必要写预防了升级组件重新适配大补丁">这个就真不那么必要写预防了，升级组件，重新适配/大补丁。</h4>
<br>
<h2 id="a072021-认证及验证机制失效httpsowasporgtop10zh_cna07_2021-identification_and_authentication_failures"><a href="https://owasp.org/Top10/zh_CN/A07_2021-Identification_and_Authentication_Failures/">A07:2021-认证及验证机制失效</a></h2>
<h3 id="a072021-认证及验证机制失效在之前标题为-错误的认证机制在本次版本中由第二名下滑至此并同时包含了将认证相关缺失的-cwe-包含在內这个类別仍是-top-10-不可缺少的一环但同时也有发现现在标准化的架构有协助降低次风险发生机率">A07:2021-认证及验证机制失效在之前标题为 错误的认证机制。在本次版本中由第二名下滑至此，并同时包含了将认证相关缺失的 CWE 包含在內。这个类別仍是 Top 10 不可缺少的一环，但同时也有发现现在标准化的架构有协助降低次风险发生机率。</h3>
<p>(确实，架构越发标准化之后，认证失效问题掉到的top7。不过还是需要注意的)</p>
<h4 id="预防-3">预防：</h4>
<ul>
<li>在可能的情况下，实作多因素认证来防止自动化撞库攻击、暴力破解、以及遭窃认证资讯被重复利用的攻击。</li>
<li>不要交付或部署任何预设的认证资讯，特别是管理者。</li>
<li>实作脆弱密码的检查，如测试新设定或变更的密码是否存在于前 10,000 个最差密码清单。</li>
<li>将密码长度、复杂度、和轮换政策与&quot;NIST 800-63b 第 5.1.1 节-被记忆的秘密或其他现代基于证据的密码政策&quot;保持一致。</li>
<li>对所有结果使用相同的讯息回应，确保注册、认证资讯回复、以及 API 路径能够抵御帐号列举攻击。</li>
<li>限制或增加失败登入尝试的延迟。记录所有失败并于侦测到撞库、暴力破解或其他攻击时发出告警。</li>
<li>使用伺服器端、安全的内建会话(session)管理器，在登入后产生新的高乱数随机程度(entropy)的随机会话(session)ID。会话(session)ID 不应出现在 URL 中，必须被安全的储存，并且在登出后、闲置、超时后被注销。</li>
</ul>
<br>
<h2 id="a082021-软件和数据完整性故障httpsowasporgtop10zh_cna08_2021-software_and_data_integrity_failures"><a href="https://owasp.org/Top10/zh_CN/A08_2021-Software_and_Data_Integrity_Failures/">A08:2021-软件和数据完整性故障</a></h2>
<h3 id="a082021-软件和数据完整性故障是2021年新增的一个类别重点关注未经验证完整性就对软件更新关键数据和cicd流水线做出假设这个类别中common-vulnerability-and-exposurescommon-vulnerability-scoring-system-cvecvss数据所映射的10个cwe中有最高的权重影响之一而a82017-不安全的反序列化现在已成为这个更大类别的一部分">A08:2021-软件和数据完整性故障是2021年新增的一个类别，重点关注未经验证完整性就对软件更新、关键数据和CI/CD流水线做出假设。这个类别中，Common Vulnerability and Exposures/Common Vulnerability Scoring System (CVE/CVSS)数据所映射的10个CWE中有最高的权重影响之一。而A8:2017-不安全的反序列化现在已成为这个更大类别的一部分。</h3>
<h4 id="弱点描述程式码或基础架构未能保护软体及资料之完整性受到破坏举例来说物件或资料经编码或序列化到一个对攻击者可读写之结构中将导致不安全的反序列化另一种形式则是应用程式依赖来自于不受信任来源典藏库及内容递送网路之外挂函式库或模组不安全的持续性整合部署cicd流程则会造成潜在的未经授权存取恶意程式码或系统破坏最后现在许多应用程式拥有自动更新功能但自动更新功能在缺乏充足完整性验证功能时就下载并安装更新到处于安全状态下的应用程式攻击者能上传自制更新档案更新档案将传播到所有已安装之应用程式并在这些应用程式上执行">弱点描述：程式码或基础架构未能保护软体及资料之完整性受到破坏。举例来说，物件或资料经编码或序列化到一个对攻击者可读写之结构中将导致不安全的反序列化。另一种形式则是应用程式依赖来自于不受信任来源，典藏库及内容递送网路之外挂，函式库或模组。不安全的持续性整合/部署(CI/CD)流程则会造成潜在的未经授权存取，恶意程式码或系统破坏。最后，现在许多应用程式拥有自动更新功能，但自动更新功能在缺乏充足完整性验证功能时就下载并安装更新到处于安全状态下的应用程式。攻击者能上传自制更新档案，更新档案将传播到所有已安装之应用程式并在这些应用程式上执行。</h4>
<h4 id="预防-4">预防：</h4>
<ul>
<li>确保不受信任之客户端不会收到未签署或加密之序列化资料并利用完整性检查或数位签章来侦测窜改或重放攻击。</li>
<li>利用数位签章或类似机制确保软体或资料来自预期之提供者</li>
<li>确保函式库及从属套件，例如 npm 或 Maven，是从受信任的典藏库取得。</li>
<li>使用软体供应链安全工具(例如 OWASP Dependency Check 或 OWASP CycloneDX)确保元件没有已知弱点。</li>
<li>适当地设定持续性整合/部署(CI/CD)流程的组态及存取控制以确保程式码在组建及部署流程中的完整性。</li>
</ul>
<br>
<h2 id="a092021-安全日志记录和监控故障httpsowasporgtop10zh_cna09_2021-security_logging_and_monitoring_failures"><a href="https://owasp.org/Top10/zh_CN/A09_2021-Security_Logging_and_Monitoring_Failures/">A09:2021-安全日志记录和监控故障</a></h2>
<h3 id="a092021-安全日志记录和监控故障以前是a102017-日志记录和监控不足并且在top-10社区调查第3名中被添加从之前的第10名上升这个类别扩展了更多类型的故障测试也更具挑战性并且在cvecvss数据中没有很好的代表性然而在这个类别中的故障可能会直接影响可见性事件警报和取证">A09:2021-安全日志记录和监控故障以前是A10:2017-日志记录和监控不足，并且在Top 10社区调查（第3名）中被添加，从之前的第10名上升。这个类别扩展了更多类型的故障，测试也更具挑战性，并且在CVE/CVSS数据中没有很好的代表性。然而，在这个类别中的故障可能会直接影响可见性、事件警报和取证。</h3>
<p>(这估计是top10中，危害性相对最小的呃)</p>
<h4 id="如何预防-1">如何预防</h4>
<ul>
<li>确保记录所有登入，存取控制及服务器端输入验证之失败，日志应包含充足使用者情境以识别可疑或恶意帐号，日志应存留充足时间以利未来可能之鉴识分析要求。</li>
<li>确保日志格式符合一般日志管理系统常用格式。</li>
<li>确保日志经正确编码以防止遭受注入攻击或日志/监控系统遭受攻击。</li>
<li>确保高价值交易进行时产生稽核轨迹(日志)并实作完整性控制以避免窜改或删除，如仅限附加的资料表或类似工具。</li>
<li>DevSecOps 团队应建立有效地监控及告警机制以利侦测可疑活动并快速应变。</li>
<li>建立或导入事件应变及复原计画，如 NIST 800-61r2 或更新版本。</li>
</ul>
<br>
<h2 id="a102021-服务器端请求伪造httpsowasporgtop10zh_cna10_2021-server-side_request_forgery_28ssrf29"><a href="https://owasp.org/Top10/zh_CN/A10_2021-Server-Side_Request_Forgery_%28SSRF%29/">A10:2021-服务器端请求伪造</a></h2>
<h3 id="a102021-服务器端请求伪造是从top-10社区调查中添加的第1名数据显示相对较低的发生率但测试覆盖范围高于平均水平并且在利用和影响潜力方面得到了高于平均水平的评价这个类别代表了安全社区成员告诉我们这很重要的场景即使目前的数据并没有很好地说明这一点">A10:2021-服务器端请求伪造是从Top 10社区调查中添加的（第1名）。数据显示相对较低的发生率，但测试覆盖范围高于平均水平，并且在利用和影响潜力方面得到了高于平均水平的评价。这个类别代表了安全社区成员告诉我们这很重要的场景，即使目前的数据并没有很好地说明这一点。</h3>
<h4 id="开发者可以预防伪造服务端请求透过实施下列一部分或全部的纵身防御控制措施">开发者可以预防伪造服务端请求，透过实施下列一部分或全部的纵身防御控制措施：</h4>
<h4 id="from-network-layer-从网路层着手">From Network layer (从网路层着手)</h4>
<ul>
<li>将远端资源存取功能切割成不同子网路以降低伪造服务端请求之冲击</li>
<li>于防火墙政策或于网路存取控制规则实施&quot;预设全拒绝(deny by default)&quot; ，以封锁全部来自外部之网路流量</li>
</ul>
<h4 id="from-application-layer-从应用层">From Application layer: (从应用层)</h4>
<ul>
<li>过滤并验证来自于用户端提供之全部输入</li>
<li>以正面表列方式列出 URL、port、目的地清单</li>
<li>不传送原始回应给用户端</li>
<li>停用 HTTP 重新导向</li>
<li>留意网址之一致性，以避免例如 DNS rebinding 攻击、TOCTOU 攻击</li>
</ul>
<blockquote>
<p>别透过拒绝清单或正规表示式来减缓伪造服务端请求。攻击者有 payload 清单、工具和技巧可以绕过这些拒绝清单</p>
</blockquote>
    </div>
    <footer class="content__footer"></footer>

            </section>

            <section class="page__aside">
                <div class="aside__about">
<div class="aside__about">
    <img class="about__logo" src="https://juruoxiao.gitee.io/linux_work/images/rice.svg" alt="Logo">
<h1 class="about__title">UxiaoTag</h1>
<p class="about__description">一个蒟蒻无比的萌新.</p>
</div>


<ul class="aside__social-links">
    
    <li>
        <a href="https://github.com/q2516631454" rel="me" aria-label="GitHub" title="GitHub"><i class="fa-brands fa-github" aria-hidden="true"></i></a>&nbsp;
    </li>
    
    <li>
        <a href="mailto:2516631454@qq.com" rel="me" aria-label="Email" title="Email"><i class="fa-solid fa-envelope" aria-hidden="true"></i></a>&nbsp;
    </li>
    
</ul>





<link
  rel="stylesheet"
  href="https://cdn.jsdelivr.net/npm/sakana-widget@2.5.0/lib/sakana.min.css"
/>
<div id="sakana-widget"></div>
<script>
  function initSakanaWidget() {
    const takina = SakanaWidget.getCharacter('takina');
    takina.initialState = {
      ...takina.initialState,
      i: 0.01,
      d: 1,
    };
    SakanaWidget.registerCharacter('takina-slow', takina);
    new SakanaWidget({ character: 'takina-slow',controls:false}).mount('#sakana-widget');
  }
</script>
<script
  async
  onload="initSakanaWidget()"
  src="https://cdn.jsdelivr.net/npm/sakana-widget@2.5.0/lib/sakana.min.js"
></script>
</div>
                <hr>
                <div class="aside__content">
    <p>护网学习前四天的内容，学习，为护网做准备</p>
    
        <p>
            By UxiaoTag, 
            2023-06-10
        </p>
    

                </div>
            </section>

            <footer class="page__footer"><p>
    
    
    
    
    
    
      
    
      
    
    
    
</p>
<br /><br />
<p class="copyright">© 2021–2022 <a href="https://gitee.com/juruoxiao/linux_work">UxiaoTag</a></p>
<p class="advertisement">Powered by <a href="https://gohugo.io/">hugo</a> and <a href="https://github.com/joeroe/risotto">risotto</a>.</p>
</footer>

        </div>
    </body>

</html>
